package cn.coder.jdbc2.config;

import cn.coder.jdbc2.util.GenericTokenParser;
import cn.coder.jdbc2.util.ParameterMappingTokenHandler;

public class SqlSource {
private String sqlText;
    
    public SqlSource(String sqlText) {
        super();
        this.sqlText = sqlText;
    }

    public String getSqlText() {
        return sqlText;
    }

    public void setSqlText(String sqlText) {
        this.sqlText = sqlText;
    }
    
    
    public BoundSql getBoundSql() {
        //这是从mybatis源码中直接获得的工具类，用于解析sql获得原始的sql语句
        ParameterMappingTokenHandler tokenHandler = new ParameterMappingTokenHandler();
        GenericTokenParser parser = new GenericTokenParser("#{", "}", tokenHandler);
        //封装原始的sql以及参数列表名称
        return new BoundSql(parser.parse(sqlText), tokenHandler.getParameterMappings());
    }
}
